/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2022-2023. All rights reserved.
 */

package model

import "time"

/*
* Id 用户ID
* Name 用户名
* Password 用户密码
* Salt 加密用的salt
* PhoneNumber 手机号
* FailTimes 连续登录失败次数
* Locked 账号是否被冻结（只能管理员解锁）
* LockedTime 上一次锁定时间
* CreatedTime 用户注册时间
* UpdateTime 用户上次登录时间
* PwdChanged 是否修改过密码
* Role 角色id  这里创建的外键需要注意
* Authenticated 是否已经人证核身
* FirstLogin 是否首次登录
* ProfilePhotoUrl 用户头像URL
 */

type User struct {
	Id              string    `orm:"column(user_id);size(64);pk"`
	Name            string    `orm:"column(user_name);size(64);"`
	Password        string    `orm:"column(password);size(40);"`
	Salt            string    `orm:"column(salt);size(40);"`
	PhoneNumber     string    `orm:"column(phone_number);size(40);"`
	FailTimes       int       `orm:"column(fail_times);type(int)"`
	Locked          bool      `orm:"column(locked);type(boolean)"`
	LockedTime      time.Time `orm:"column(locked_time);null;type(datetime)"`
	CreatedTime     time.Time `orm:"column(created_time);auto_now_add;type(datetime)"`
	UpdateTime      time.Time `orm:"column(update_time);auto_now;type(datetime)"`
	PwdChanged      bool      `orm:"column(pwdchanged);type(boolean)"`
	Role            *Role     `orm:"column(role_id);rel(fk)"`
	Authenticated   bool      `orm:"column(authenticated);type(boolean)"`
	FirstLogin      bool      `orm:"column(first_login);type(boolean)"`
	ProfilePhotoUrl string    `orm:"column(profile_photo_url);type(string)"`
}
